package com.zx.role.service;

import com.zx.role.domain.SysRole;
import com.zx.role.domain.SysUser;

import java.util.List;

public interface SysRoleService {

    /**
     * 根据主键id查询
     */
    public SysRole selectById(Integer id);

    /**
     * 根据条件查询
     */
    public List<SysRole> selectObjects(SysRole entity);

    /**
     * 插入操作
     */
    public int insertObject(SysRole entity);

    /**
     * 更新
     */
    public int updateObject(SysRole entity);

    /**
     * 根据对象逻辑删除
     */
    public int deleteObject(SysRole entity);

    /**
     * 根据id删除
     */
    public int deleteObjectById(Integer id);

    /**
     * 获得已授权用户列表
     * @param sysUser
     * @return
     */
    List<SysUser> getUserByRoleId(SysUser sysUser);

    /**
     * 获得未授权用户列表
     * @param sysUser
     * @return
     */
    List<SysUser> getUserListByRoleId(SysUser sysUser);

    /**
     * 根据id逻辑删除
     * @param id
     * @return
     */
    boolean deleteObjectOnly(Integer id);

    /**
     * 批量逻辑删除
     * @param haveIds
     * @return
     */
    boolean bathDelRole(Integer[] haveIds);

    /**
     * 根据角色统计用户数
     * @return
     */
    List<SysRole> getUserCountByRole();

    /**
     * 根据用户统计角色数
     * @return
     */
    List<SysUser> getRoleCountByUser();
}
